home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / Application.h < prev    next >
C/C++ Source or Header  |  1990-12-05  |  3KB  |  120 lines

  1. #ifndef Application_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define Application_First
  6.  
  7. #include "Dialog.h"
  8.  
  9. class Document;
  10. extern const char *cDocTypeUndef;
  11.  
  12. class Application: public EvtHandler {
  13. protected:
  14.     static class FileDialog *fileDialog;
  15.  
  16.     char *version, **argv;
  17.     const char *mainDocumentType;
  18.     int argc;
  19.     class ObjList *documents;
  20.     class Menu *menu;
  21.     class Dialog *applDialog;
  22.     class ClipBoard *clipboard;
  23.     Point lastDocPos;
  24.     bool printHierarchy, inited;
  25.     
  26.     //---- globals
  27.     ClassManager *gClassManager;
  28.     class IdDictionary *gObservers;
  29.     bool gBatch;
  30.     bool gDebug;
  31.     class BlankWin *gWindow;
  32.     Rectangle gScreenRect; 
  33.     char **gEnviron;
  34.     
  35. public:
  36.     MetaDef(Application);
  37.     Application(int ac, char** av, const char *mainDocType= cDocTypeUndef);
  38.     ~Application();
  39.     
  40.     void ApplInit();
  41.  
  42.     //---- dialogs
  43.     virtual FileDialog *MakeFileDialog();
  44.  
  45.     //---- application attributes
  46.     char *GetName()
  47.     { return argv[0]; }
  48.     const char *GetMainDocumentType()
  49.     { return mainDocumentType; }
  50.     EvtHandler *GetNextHandler();
  51.  
  52.     //---- Command line arguments -------------------
  53.     virtual int DoParseOptions(char *arg0, char *arg1);
  54.     virtual void ParseCommandLine(int argc, char **argv);
  55.     char *ProgramName();
  56.  
  57.     //---- Document related methods -----------------
  58.     virtual Point GetNewDocumentPos();
  59.     virtual void AddDocument(Document *);
  60.     void RemoveDocument(Document *);
  61.     virtual bool CloseAllDocuments();
  62.     // return TRUE on success
  63.     virtual void OpenDocument(char *);
  64.     virtual Document *DoMakeDocuments(const char *type);
  65.     void NewDocument(const char *type);
  66.     virtual bool CanOpenDocument(class FileType *);
  67.     Document *FindDocument(int id);
  68.  
  69.     //---- generic application commands
  70.     virtual void About();
  71.     virtual void Quit();
  72.     virtual void Debug(int level);
  73.     // 0 < level < 10
  74.     virtual void Open();
  75.     virtual void DoOnError(int level, char *location, char *msg);
  76.  
  77.     //---- menu related methods
  78.     class Menu *GetMenu();
  79.     Command *DoMenuCommand(int);
  80.     void Control(int id, int, void*);
  81.     void HandleApplicationCommands(int);
  82.     
  83.     //---- application window
  84.     virtual class VObject *DoCreateDialog();
  85.     virtual void OpenApplicationDialog(Point p);
  86.     virtual void ShowApplicationWindow();
  87.  
  88.     //---- run the Application
  89.     virtual int Run();
  90.  
  91.     //---- dynamic loading
  92.     virtual int DynLoad(char *name);
  93.     virtual int DynLoadHook(Object*);
  94.     
  95.     //---- inspector
  96.     void InspectorId(char *buf, int sz);
  97.     void Parts(Collection*);
  98.     void UpdateGlobals();
  99. };
  100.  
  101. extern bool         gBatch;
  102. extern Application *gApplication;
  103. extern ClipBoard   *gClipBoard;
  104. extern char        *gProgname;
  105.  
  106. //---- Application Dialog -----------------------------------------------
  107.  
  108. class ApplDialog : public Dialog {
  109.     Application *appl;
  110. public:
  111.     MetaDef(ApplDialog);
  112.     ApplDialog(Application *eh, char *title= 0);
  113.     VObject *DoCreateDialog();
  114.     void Control(int id, int, void*);
  115.     Point GetInitialPos();
  116. };
  117.  
  118. #endif Application_First
  119.  
  120.